package com.molichuxing.services.property;

/**
 * 
 * 邮件类型
 */
public enum RiskEmailTypeExplainEnum {

	ORDER_REPAYMENT_REMINDER(1,"专属分期订单在每个还款日前1天、当天上午9点，汇总生成当期未还款订单预警通知；"),
	VIOLATION_UNABLE_QUERY(3,"每周四上午9点定时请求接口；查询用车中车辆，及当前请求时间-确认还车时间<=30日的车辆，及存在违章待处理和待缴费记录的车辆；调取失败的车辆数据；"),
	VIOLATION_UNTREATED(4,"每周四上午9点定时请求接口；查询用车中车辆，及当前请求时间-确认还车时间<=30日的车辆，及存在违章待处理和待缴费记录的车辆；调取成功且未处理完成的违章记录；"),
	ORDER_OVERDUE_PAYMENT(5,"专属分期订单在每个还款日逾期后的第1天，3、7天上午9点，汇总生成当期逾期未还款订单报警通知；"),
	MAINTENANCE_NOTICE(7,"1）定时查询：每30秒请求接口；查询所有车辆，车辆有效行驶里程；\n" + 
			" 2）提醒触发条件：\n" + 
			"  触发公里数保养时：\n" + 
			"   a如果,行驶里程>=应保养里程-保养里程参数*20%\n" + 
			"   b如果,行驶里程>=应保养里程-保养里程参数*10%\n" + 
			"  触发年份保养时：\n" + 
			"　 a如果,当前日期=应保养日-40天 ，且保养状态为应保养；\n" + 
			"　 b如果,当前日期=应保养日-30日，且保养状态为应保养；\n" + 
			"　 c如果,当前日期>=应保养日-20日， 且保养状态为应保养；\n" + 
			" 3)触发公里数保养和触发年份保养规则以先到为准；\n" + 
			" 4)提示OP车务人员：\n" + 
			"   1）车辆在中转库时；\n" + 
			"   2）在经销商门店未出租时；\n" + 
			"   3）车辆当前为订阅里程用车中的订单，且剩于可用里程<=保养里程参数*20% 或剩于用车时长<=保养天数参数-40天时；\n" + 
			"   4）另2.1.2和2.2.3触发后，如有发用户同时发给车务人员；"),
	DRIVINGLICENSE_AUDIT(14,"用户点击“提交人工审核”触发；"),
    ORDER_DEALER_WAITING_FOR_DEPARTURE(17,"商家订单首期支付审核通过时触发；"),
    ORDER_DEALER_VEHICLE_TO_REPLACED(18,"更换拒收车辆时触发；"),
    OFFLINE_REPAYMENT_REVIEW(19,"相关业务人员系统操作添加线下支付申请时触发；"),
    CONTRACT_GENERATION_FAILED(20,"C端用户签约订单合同或协议等生成失败时触发；"),
	ORDER_DEALER_REPAYMENT_REMINDER(21,"商家分期支付订单在每个还款日前3天，汇总生成当期未还款订单预警通知；"),
	ORDER_DEALER_OVERDUE_PAYMENT(22, "分期订单在每个还款日逾期后的第1天，3、7天上午9点，汇总生成当期逾期未还款订单报警通知；"),

	/**
	 * 订单审核提醒
	 */
	ORDER_ONE(23, "1）用户在大屏端下单，支付成功后触发；2）用户在移动端（包括公众号）下单，支付成功后触发；"),
	ORDER_DEALER_REJECTION_PAYMENT(24, "经销商系统拒收车辆时触发；"),
	/**
	 * PDI待检验提醒
	 */
	PDI_CHECK(25, "用户智能终端还车确认时触发；"),
	/**
	 * PDI待争议处理提醒
	 */
	PDI_DISPUTES(26, "C端用户不认可PDI检验结果时触发；");


	int value;
	String name;

	RiskEmailTypeExplainEnum(int value, String name) {
		this.value = value;
		this.name = name;
	}

	public int getValue() {
		return value;
	}

	public String getName() {
		return name;
	}


	/**
	 * 通过value获取枚举的name
	 * 
	 * @param value
	 * @return
	 */
	public static String getName(int value) {
		RiskEmailTypeExplainEnum enumerate = getEnum(value);
		return enumerate == null ? null : enumerate.getName();
	}

	/**
	 * 通过value获取枚举
	 * 
	 * @param value
	 * @return
	 */
	public static RiskEmailTypeExplainEnum getEnum(int value) {
		for (RiskEmailTypeExplainEnum enumerate : RiskEmailTypeExplainEnum.values()) {
			if (enumerate.getValue() == value) {
				return enumerate;
			}
		}
		return null;
	}
}
